Despite advances in hardware and software technology, computer users frequently encounter situations in which they cannot establish a connection to a service provider or network. What is meant by establishing a connection in the context of the present application is either creating a first connection to a network or repairing a connection to a network. Repairing a connection to a network can be the result of an improperly installed or configured software program or device driver, or the device being used to attempt the connection may simply be disabled. In the case of a wired connection, the problem may be caused by a defective interconnect cable, or in the case of a wireless connection, a bad transmitter or antenna connection. In addition to such defects, other problems in the network can prevent the user from getting connected. For example, in the case of an Ethernet network, the failure of the network's Dynamic Host Configuration Protocol, or DHCP server, can prevent the user from getting connected to the network.
Because the majority of these problems are not communicated to the user, the user cannot determine the cause, and sees the problem as simply “no connection.” Moreover, even if the user was able to determine the source of the problem, e.g., through an error message generated by the system, he or she would most likely not know how to resolve the problem.
Accordingly, what is needed is a system and method for determining the cause of a connectivity problem and repairing the connection. The system and method should be automatic and transparent to the user. The present invention addresses such a need.